-
-
Notifications
You must be signed in to change notification settings - Fork 907
[Feature] Add the chat panel #430
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@CREDO23 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review by RecurseML
🔍 Review performed on 420e2b6..3dd03a8
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (16)
• surfsense_backend/alembic/versions/32_add_podcast_staleness_detection.py
• surfsense_backend/app/db.py
• surfsense_backend/app/routes/chats_routes.py
• surfsense_backend/app/routes/podcasts_routes.py
• surfsense_backend/app/schemas/chats.py
• surfsense_backend/app/schemas/podcasts.py
• surfsense_backend/app/tasks/podcast_tasks.py
• surfsense_web/app/dashboard/[search_space_id]/chats/chats-client.tsx
• surfsense_web/app/dashboard/[search_space_id]/podcasts/podcasts-client.tsx
• surfsense_web/components/chat/ChatPanel/ChatPanelContainer.tsx
• surfsense_web/components/chat/ChatPanel/ChatPanelView.tsx
• surfsense_web/components/chat/ChatPanel/ConfigModal.tsx
• surfsense_web/components/chat/PodcastUtils.ts
• surfsense_web/hooks/use-chat.ts
• surfsense_web/hooks/use-podcast.ts
• surfsense_web/package.json
MODSetter
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review by RecurseML
🔍 Review performed on 3dd03a8..031e5db
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (2)
• surfsense_web/components/chat/ChatInterface.tsx
• surfsense_web/components/chat/ChatPanel/ChatPanelView.tsx
5adce95 to
f13183d
Compare
f13183d to
55e5b45
Compare
660450f to
87c5d24
Compare
|
@CREDO23 This looks nice. Thanks for also adding tanstack query...really appreciate it. I really want to shift all current hooks to tanstack query soon. |
Thanks @MODSetter ! |
Thank you. I really appreciate any help integrating tanstack query. I think its also time to add a global state management library as its getting complex now. What do you suggest? How about zustand? |
|
For a global state management , I would suggest jotai! It is lightweight and use the full power of tanstack query. |
Okay 👍 |
[Feature] Add the chat panel



Description
Screenshots
Change Type
High-level PR Summary
This PR introduces a collapsible right panel in the chat interface that allows users to generate podcasts directly from their chat conversations. The feature includes a podcast staleness detection system that tracks when chat messages are updated after podcast generation, alerting users when a podcast is outdated and enabling regeneration. The implementation involves database schema changes to track chat and podcast state versions, backend API endpoints to fetch podcasts by chat ID, and frontend components for the panel UI with staleness indicators and podcast generation controls.
⏱️ Estimated Review Time: 30-90 minutes
💡 Review Order Suggestion
surfsense_backend/alembic/versions/32_add_podcast_staleness_detection.pysurfsense_backend/app/db.pysurfsense_backend/app/schemas/chats.pysurfsense_backend/app/schemas/podcasts.pysurfsense_backend/app/routes/chats_routes.pysurfsense_backend/app/routes/podcasts_routes.pysurfsense_backend/app/tasks/podcast_tasks.pysurfsense_web/components/chat/PodcastUtils.tssurfsense_web/hooks/use-podcast.tssurfsense_web/app/dashboard/[search_space_id]/chats/chats-client.tsxsurfsense_web/app/dashboard/[search_space_id]/podcasts/podcasts-client.tsxsurfsense_web/hooks/use-chat.tssurfsense_web/components/chat/ChatInterface.tsxsurfsense_web/components/chat/ChatPanel/ChatPanelContainer.tsxsurfsense_web/components/chat/ChatPanel/ChatPanelView.tsxsurfsense_web/components/chat/ChatPanel/ConfigModal.tsxsurfsense_web/package.jsonsurfsense_web/package.json